package com.powerbank.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.powerbank.common.entity.Device;
import com.powerbank.user.vo.DeviceInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 设备Mapper接口
 */
@Mapper
public interface DeviceMapper extends BaseMapper<Device> {

    /**
     * 查询附近设备
     *
     * @param longitude    用户经度
     * @param latitude     用户纬度
     * @param radius       搜索半径（公里）
     * @param deviceStatus 设备状态筛选
     * @param onlyAvailable 是否只显示可用设备
     * @return 设备信息列表
     */
    List<DeviceInfoVO> findNearbyDevices(@Param("longitude") BigDecimal longitude,
                                         @Param("latitude") BigDecimal latitude,
                                         @Param("radius") Double radius,
                                         @Param("deviceStatus") Integer deviceStatus,
                                         @Param("onlyAvailable") Boolean onlyAvailable);

    /**
     * 根据设备编码查询设备详情
     *
     * @param deviceCode 设备编码
     * @return 设备信息
     */
    DeviceInfoVO getDeviceDetailByCode(@Param("deviceCode") String deviceCode);
}